Many network- and/or web-based applications and services that are currently in use, or in development, have a social aspect. For example, users of these applications are encouraged to establish connections with other users, or follow other users, for the purpose of forming virtual communities, forums, groups and/or teams via which the users can collaborate, interact with one another and exchange information. Similarly, users of these applications may be encouraged to follow certain content sources, or subscribe to receive information relating to certain companies, people, topics, web pages, and so forth. With many applications and/or services that have a social aspect, one of the primary content delivery mechanisms is a component that is frequently referred to as a “feed” or “stream.” For purposes of the present application, the terms “feed” and “stream” are meant to be synonymous with a variety of other names by which skilled artisans frequently refer to a feed or stream, including such terms as, activity stream, activity feed, content stream, content feed, update stream, update feed, and news feed, among others.
Generally, a feed or stream consists of a list of content items that have been selected for presentation to a particular person (e.g., a user or member of a computer- or web-based service) in a user interface of a software application. Typically, the content items that are presented to a particular user in his or her feed or stream are selected specifically for that particular user, for example, based on the content items having a relationship or association with some entity (e.g., person, company, topic, web page, etc.) with which the user is also related or associated. In many instances, the volume of content items available for presentation to any one user far exceeds the amount that user can practically view and consume. Accordingly, many applications and/or services have some algorithmic means for determining what specific content items are to be presented to any particular user in that user's feed or stream.
For instance, the content items that are presented in a particular user's feed may be selected, for example, using a content relevance or selection algorithm, based on the content items having a relationship to some entity with which the user is also associated or related. In the context of a social network service, for example, many of the content items that appear in a particular user's feed or stream are content items (e.g., individual messages or postings) that have been generated, posted or published by other members of the social network service with whom the particular user is connected or following. Of course, other factors may also be used in various content relevance or selection algorithms for purposes of selecting and ordering content items to present to a user, to include such factors as: the time that a content item was initially posted, published or shared; and, the popularity of a content item as determined by the amount and timing of social interactions (e.g., comments, likes, shares, selections, etc.) that a content item has received. Although content relevance and selection algorithms generally improve the overall user experience by presenting to users content items that are predicted to be of interest to the user, in many instances the content relevance and selection algorithms leave much to be desired.
When viewing a feed or stream within an application executing on a mobile computing device, a user frequently must wait while the mobile computing device requests, receives and renders the content items in the feed presented on the display of the mobile computing device. For example, one conventional way users invoke a request for content items presented in a stream or feed is by performing what is commonly referred to as a pull-to-refresh gesture. As illustrated in FIG. 1, a content stream with various “stale” content items is shown. By simply making a pull-down gesture on the touch screen display of the computing device (as shown with reference number 10-A), a user can invoke a request to refresh the content items presented in the content stream. Accordingly, upon completion of the pull-to-refresh gesture (reference 10-B), a request is communicated from the mobile computing device to a server, where the request is processed, and content items are selected. In processing the request, the server will identify and select the most relevant content items, order those content items, and then communicate those content items over a network to the mobile computing device where the content items are ultimately rendered for presentation to the user. Depending on various factors, for example, such as the availability, bandwidth and latency of a wireless communications network over which the mobile computing device is communicating, the perceived delay (and thus frustration, e.g., 10-C) experienced by the viewing user may be significant.